package com.lant.constant;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * @description: 字段常量
 * @projectName: lant-service-provider
 * @className: FieldConstant
 * @author: YFL
 * @createTime: 2020年5月20日 下午7:45:43
 */
public class FieldConstant {

    private static Logger logger = LoggerFactory.getLogger(FieldConstant.class);

    /**
     * lantToken cookie名字
     */
    private static String lantToken;

    /**
     * SSOSessionExpire session的过期时间30分钟
     */
    private static Integer SSOSessionExpire;

    /**
     * RedisUserSessionKey 用户session在redis中保存的key
     */
    private static String RedisUserSessionKey;

    private FieldConstant() {
        super();
    }

    public static String getLantToken() {
        return lantToken;
    }

    public static String getRedisUserSessionKey() {
        return RedisUserSessionKey;
    }

    public static Integer getSSOSessionExpire() {
        return SSOSessionExpire;
    }

    /**
     * @Title: setConstant
     * @Description: 从非静态方法正确地更新静态字段非常困难，如果有多个类实例和/或多个线程在运行，则很容易导致错误。理想情况下，静态字段只能从同步的静态方法中更新。
     * @param: lantToken
     * @param: SSOSessionExpire
     * @param: RedisUserSessionKey
     * @return: void
     * @author: YFL
     * @date: 2020年5月20日 下午8:00:25
     */
    public static void setConstant(String lantToken, String RedisUserSessionKey, Integer SSOSessionExpire) {
        FieldConstant.lantToken = lantToken;
        FieldConstant.RedisUserSessionKey = RedisUserSessionKey;
        FieldConstant.SSOSessionExpire = SSOSessionExpire;
        logger.info("lantToken = {},SSOSessionExpire={},RedisUserSessionKey={}", lantToken, SSOSessionExpire,
            RedisUserSessionKey);
    }

}
